GDB (GNU Debugger)
GDB হলো একটি ওপেন সোর্স ডিবাগার যা সাধারণত Unix এবং Linux সিস্টেমে ব্যবহৃত হয়। এটি প্রোগ্রামারদের প্রোগ্রাম চালানোর সময় ত্রুটি সনাক্ত ও ঠিক করতে সাহায্য করে।
GDB-এর বৈশিষ্ট্য
- ব্রেকপয়েন্ট সেট করা: প্রোগ্রামের যেকোনো অংশে ব্রেকপয়েন্ট সেট করে কোডের সেই অংশে থামানো যায়।
- প্রোগ্রাম এক্সিকিউশন নিয়ন্ত্রণ: প্রোগ্রাম স্টেপ-বাই-স্টেপ এক্সিকিউশন, যেমন স্টেপ ইন, স্টেপ ওভার, এবং কন্টিনিউ করা যায়।
- ভেরিয়েবল এবং মেমরি পরিদর্শন: চলমান প্রোগ্রামের ভেরিয়েবল এবং মেমরির মান দেখা ও পরিবর্তন করা যায়।
- স্ট্যাক ট্রেসিং: প্রোগ্রামের স্ট্যাক ট্রেস দেখা, যা বিভিন্ন ফাংশন কল এবং তাদের সম্পর্ক বোঝায়।
- কোড বিশ্লেষণ: GDB প্রোগ্রামের উৎস কোড বা অ্যাসেম্বলি লেভেলে কোড বিশ্লেষণ করতে পারে।
- মাল্টি-থ্রেডিং সাপোর্ট: GDB মাল্টি-থ্রেড প্রোগ্রামগুলোর ডিবাগিংও সাপোর্ট করে।
GDB-এর ব্যবহার উদাহরণ
GDB দিয়ে একটি প্রোগ্রাম ডিবাগ করতে:
প্রোগ্রাম কম্পাইল:
gcc -g program.c -o programএখানে
-gফ্ল্যাগ ডিবাগিং তথ্য যোগ করে।GDB শুরু:
gdb ./programব্রেকপয়েন্ট সেট করা:
(gdb) break mainপ্রোগ্রাম চালানো:
(gdb) runস্টেপ-বাই-স্টেপ এক্সিকিউশন:
(gdb) next
OllyDbg
OllyDbg হলো Windows ভিত্তিক একটি ডিবাগিং টুল যা গ্রাফিকাল ইন্টারফেস ব্যবহার করে। এটি বিশেষভাবে 32-বিট এক্সিকিউটেবলগুলোর জন্য ডিজাইন করা হয়েছে এবং রিভার্স ইঞ্জিনিয়ারিংয়ে ব্যাপকভাবে ব্যবহৃত হয়।
OllyDbg-এর বৈশিষ্ট্য
- ডায়নামিক কোড বিশ্লেষণ: OllyDbg প্রোগ্রামের রানটাইম এক্সিকিউশন বিশ্লেষণ করতে সক্ষম, যা প্রোগ্রামের আচরণ বুঝতে সাহায্য করে।
- রেজিস্টার এবং মেমরি পরিদর্শন: ইউজাররা রেজিস্টার এবং মেমরির বর্তমান মান দেখতে এবং সেগুলো পরিবর্তন করতে পারে।
- ইনস্ট্রাকশন ট্রেসিং: প্রোগ্রামের ইনস্ট্রাকশন লেভেলে ট্রেসিং করা যায় যা প্রতিটি কমান্ডের কার্যকারিতা পর্যবেক্ষণ করতে সাহায্য করে।
- স্ট্যাক এনালাইসিস: স্ট্যাকের অবস্থা পর্যালোচনা এবং স্ট্যাক ওভারফ্লো, পয়েন্টার সমস্যাসহ অন্যান্য ত্রুটি সনাক্ত করা যায়।
- ব্রেকপয়েন্ট ম্যানেজমেন্ট: সফটওয়্যার এবং হার্ডওয়্যার ব্রেকপয়েন্ট সেট করে ট্রেসিং করা যায়।
- কোড প্যাচিং: প্রোগ্রামিং কোড প্যাচ করে সাময়িক পরিবর্তন করে ফলাফল পর্যালোচনা করা যায়।
OllyDbg-এর ব্যবহার উদাহরণ
- এক্সিকিউটেবল লোড করা: OllyDbg-এ
.exeফাইল লোড করুন। - ব্রেকপয়েন্ট সেট করা: প্রোগ্রামের কোডে নির্দিষ্ট স্থানে ব্রেকপয়েন্ট সেট করুন।
- প্রোগ্রাম রান করা: প্লে বোতাম চাপুন বা
F9চাপুন। - ইনস্ট্রাকশন পর্যবেক্ষণ: প্রতিটি ইনস্ট্রাকশনের কার্যকারিতা পর্যবেক্ষণ এবং প্রয়োজনমতো কোড পরিবর্তন।
GDB এবং OllyDbg-এর তুলনা
| বৈশিষ্ট্য | GDB | OllyDbg |
|---|---|---|
| প্ল্যাটফর্ম | Unix/Linux | Windows |
| ইউজার ইন্টারফেস | কমান্ড-লাইন | গ্রাফিকাল (GUI) |
| সাপোর্টেড আর্কিটেকচার | প্রধানত 64-বিট এবং 32-বিট | প্রধানত 32-বিট |
| রিভার্স ইঞ্জিনিয়ারিং | সীমিত | উন্নত |
| ডায়নামিক বিশ্লেষণ | রয়েছে | আরও শক্তিশালী |
GDB এবং OllyDbg উভয়ই প্রোগ্রাম ডিবাগিংয়ের জন্য শক্তিশালী টুল, তবে এগুলোর ব্যবহারের ধরন এবং সুবিধাগুলো নির্ভর করে প্ল্যাটফর্ম এবং প্রোগ্রামারের পছন্দের উপর।
Read more